home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 1999 August / SGI Freeware 1999 August.iso / dist / fw_HDF.idb / usr / freeware / include / hdf / herr.h.z / herr.h
Encoding:
C/C++ Source or Header  |  1999-01-26  |  21.2 KB  |  444 lines

  1. /****************************************************************************
  2.  * NCSA HDF                                                                 *
  3.  * Software Development Group                                               *
  4.  * National Center for Supercomputing Applications                          *
  5.  * University of Illinois at Urbana-Champaign                               *
  6.  * 605 E. Springfield, Champaign IL 61820                                   *
  7.  *                                                                          *
  8.  * For conditions of distribution and use, see the accompanying             *
  9.  * hdf/COPYING file.                                                        *
  10.  *                                                                          *
  11.  ****************************************************************************/
  12.  
  13. /* $Id: herr.h,v 1.36 1996/08/27 15:05:59 sxu Exp $ */
  14.  
  15. /*+ herr.h
  16.    ***  header file for using error routines
  17.    *** to be included by all ".c" files
  18.    + */
  19.  
  20. #ifndef __HERR_H
  21. #define __HERR_H
  22.  
  23. /* if these symbols are not provided by the compiler, we'll have to
  24.    fake them.  These are used in HERROR for recording location of
  25.    error in code. */
  26.  
  27. #ifndef __FILE__
  28. #   define __FILE__ "File name not supported"
  29. #endif
  30. #ifndef __LINE__
  31. #   define __LINE__ 0
  32. #endif
  33.  
  34. /* HERROR macro, used to facilitate error reporting.  Assumes that
  35.    there's a variable called FUNC which holds the function name.
  36.    Assume that func and file are both stored in static space, or at
  37.    least be not corrupted in the meanwhile. */
  38.  
  39. #define HERROR(e) HEpush(e, FUNC, __FILE__, __LINE__)
  40.  
  41. /* HRETURN_ERROR macro, used to facilitate error reporting.  Makes
  42.    same assumptions as HERROR.  IN ADDITION, this macro causes
  43.    a return from the calling routine */
  44.  
  45. #define HRETURN_ERROR(err, ret_val) {HERROR(err); return(ret_val);}
  46.  
  47. /* HCLOSE_RETURN_ERROR macro, used to facilitate error reporting.  Makes
  48.    same assumptions as HRETURN_ERROR.  IN ADDITION, this macro causes
  49.    the file specified by the id "fid" to be closed */
  50.  
  51. #define HCLOSE_RETURN_ERROR(hfid, err, ret_val) {HERROR(err); Hclose(hfid); \
  52.                                                 return(ret_val);}
  53.  
  54. /* HGOTO_ERROR macro, used to facilitate error reporting.  Makes
  55.    same assumptions as HERROR.  IN ADDITION, this macro causes
  56.    a jump to the label 'done' which should be in every fucntion
  57.    Also there is an assumption of a variable 'ret_value' */
  58.  
  59. #define HGOTO_ERROR(err, ret_val) {HERROR(err); ret_value = ret_val; \
  60.                                    goto done;}
  61.  
  62. /* HCLOSE_RETURN_ERROR macro, used to facilitate error reporting.  Makes
  63.    same assumptions as HRETURN_ERROR.  IN ADDITION, this macro causes
  64.    the file specified by the id "fid" to be closed 
  65.    Also , this macro causes a jump to the label 'done' which should 
  66.    be in every fucntion. There is an assumption of a variable 'ret_value' */
  67.  
  68. #define HCLOSE_GOTO_ERROR(hfid, err, ret_val) {HERROR(err); Hclose(hfid); \
  69.                                             ret_value = ret_val; goto done;}
  70.  
  71. /* HGOTO_DONE macro, used to facilitate the new error reporting model.  
  72.    This macro is just a wrapper to set the return value and jump to the 'done'
  73.    label.  Also assumption of a variable 'ret_value' */
  74.  
  75. #define HGOTO_DONE(ret_val) {ret_value = ret_val; goto done;}
  76.  
  77. /* For further error reporting */
  78. #define HE_REPORT(msg) HEreport(msg)
  79. #define HE_REPORT_RETURN(msg, ret_val) { HEreport(msg); return(ret_val); }
  80. #define HE_CLOSE_REPORT_RETURN(hfid,msg, ret_val) { HEreport(msg); \
  81.                                                     Hclose(hfid); \
  82.                                                     return(ret_val);}
  83.  
  84. #define HE_REPORT_GOTO(msg, ret_val) { HEreport(msg); ret_value = ret_val; \
  85.                                        goto done;}
  86. #define HE_CLOSE_REPORT_GOTO(hfid,msg, ret_val) { HEreport(msg); \
  87.                                                   Hclose(hfid); \
  88.                                                   ret_value = ret_val; \
  89.                                                   goto done;}
  90.  
  91.  
  92. /* always points to the next available slot; the last error record is in slot (top-1) */
  93. #ifndef _H_ERR_MASTER_
  94. extern
  95. #endif /* _H_ERR_MASTER_ */
  96. int32       error_top
  97. #ifdef _H_ERR_MASTER_
  98. = 0
  99. #endif /* _H_ERR_MASTER_ */
  100. ;
  101.  
  102. /* Macro to wrap around calls to HEPclear, so it doesn't get called zillions of times */
  103. #define HEclear() {if(error_top!=0) HEPclear(); }
  104.  
  105. /*
  106.    ======================================================================
  107.    Error codes
  108.  
  109.    NOTE: Remember to update the error_messages[] structure in herr.c
  110.    whenever errors are added/deleted from this list.
  111.    ======================================================================
  112.  */
  113. /* Declare an enumerated type which holds all the valid HDF error codes */
  114. typedef enum
  115.   {
  116.       DFE_NONE = 0,             /* special zero, no error */
  117. /* Low-level I/O errors */
  118.       DFE_FNF,                  /* File not found */
  119.       DFE_DENIED,               /* Access to file denied */
  120.       DFE_ALROPEN,              /* File already open */
  121.       DFE_TOOMANY,              /* Too Many AID's or files open */
  122.       DFE_BADNAME,              /* Bad file name on open */
  123.       DFE_BADACC,               /* Bad file access mode */
  124.       DFE_BADOPEN,              /* Other open error */
  125.       DFE_NOTOPEN,              /* File can't be closed 'cause it isn't open */
  126.       DFE_CANTCLOSE,            /* fclose wouldn't work! */
  127.       DFE_READERROR,            /* There was a read error */
  128.       DFE_WRITEERROR,           /* There was a write error */
  129.       DFE_SEEKERROR,            /* There was a seek error */
  130.       DFE_RDONLY,               /* The DF is read only */
  131.       DFE_BADSEEK,              /* Attempt to seek past end of element */
  132.  
  133. /* Low-level HDF I/O errors */
  134.       DFE_PUTELEM,              /* Hputelement failed in some way */
  135.       DFE_GETELEM,              /* Hgetelement failed in some way */
  136.       DFE_CANTLINK,             /* Can't initialize link information */
  137.       DFE_CANTSYNC,             /* Cannot syncronize memory with file */
  138.  
  139. /* Old group interface errors */
  140.       DFE_BADGROUP,             /* Error from DFdiread in opening a group */
  141.       DFE_GROUPSETUP,           /* Error from DFdisetup in opening a group */
  142.       DFE_PUTGROUP,             /* Error when putting a tag/ref into a group */
  143.       DFE_GROUPWRITE,           /* Error when writing out a group */
  144.  
  145. /* Internal HDF errors */
  146.       DFE_DFNULL,               /* DF is a null pointer */
  147.       DFE_ILLTYPE,              /* DF has an illegal type: internal error */
  148.       DFE_BADDDLIST,            /* The DD list is non-existent: internal error */
  149.       DFE_NOTDFFILE,            /* This is not a DF file and it is not 0 length */
  150.       DFE_SEEDTWICE,            /* The DD list already seeded: internal error */
  151.       DFE_NOSUCHTAG,            /* No such tag in the file: search failed */
  152.       DFE_NOFREEDD,             /* There are no free DD's left: internal error */
  153.       DFE_BADTAG,               /* illegal WILDCARD tag */
  154.       DFE_BADREF,               /* illegal WILDCARD reference # */
  155.       DFE_NOMATCH,              /* No (more) DDs which match specified tag/ref */
  156.       DFE_NOTINSET,             /* Warning: Set contained unknown tag: ignored */
  157.       DFE_BADOFFSET,            /* Illegal offset specified */
  158.       DFE_CORRUPT,              /* File is corrupted */
  159.       DFE_NOREF,                /* no more reference numbers are available */
  160.       DFE_DUPDD,                /* the new tag/ref is already used */
  161.       DFE_CANTMOD,              /* old element not exist, cannot modify */
  162.       DFE_DIFFFILES,            /* Attempt to merge objs in diff files */
  163.       DFE_BADAID,               /* Got a bogus aid */
  164.       DFE_OPENAID,              /* There are still active AIDs */
  165.       DFE_CANTFLUSH,            /* Can't flush DD back to file */
  166.       DFE_CANTUPDATE,           /* Cannot update the DD block */
  167.       DFE_CANTHASH,             /* Cannot add a DD to the hash table */
  168.       DFE_CANTDELDD,            /* Cannot delete a DD in the file */
  169.       DFE_CANTDELHASH,          /* Cannot delete a DD from the hash table */
  170.       DFE_CANTACCESS,           /* Cannot access specified tag/ref */
  171.       DFE_CANTENDACCESS,        /* Cannot end access to data element */
  172.       DFE_TABLEFULL,            /* Access table is full */
  173.       DFE_NOTINTABLE,           /* Cannot find element in table */
  174.  
  175. /* Generic errors */
  176.       DFE_UNSUPPORTED,          /* Feature not currently supported */
  177.       DFE_NOSPACE,              /* Malloc failed */
  178.       DFE_BADCALL,              /* Calls in wrong order */
  179.       DFE_BADPTR,               /* NULL ptr argument */
  180.       DFE_BADLEN,               /* Invalid len specified */
  181.       DFE_NOTENOUGH,            /* space provided insufficient for size of data */
  182.       DFE_NOVALS,               /* Values not available */
  183.       DFE_ARGS,                 /* bad arguments to routine */
  184.       DFE_INTERNAL,             /* serious internal error */
  185.       DFE_NORESET,              /* Too late to modify this value */
  186.       DFE_GENAPP,               /* Generic application,level error */
  187.  
  188. /* Generic interface errors */
  189.       DFE_UNINIT,               /* Interface was not initialized correctly */
  190.       DFE_CANTINIT,             /* Can't initialize an interface we depend on */
  191.       DFE_CANTSHUTDOWN,         /* Can't shut down an interface we depend on */
  192.  
  193. /* General Dataset errors */
  194.       DFE_BADDIM,               /* negative or zero dimensions specified */
  195.       DFE_BADFP,                /* File contained an illegal floating point num */
  196.       DFE_BADDATATYPE,          /* unknown or unavailable data type specified */
  197.       DFE_BADMCTYPE,            /* unknown or unavailable machine type specified */
  198.       DFE_BADNUMTYPE,           /* unknown or unavailable number type specified */
  199.       DFE_BADORDER,             /* unknown or illegal array order specified */
  200.       DFE_RANGE,                /* improper range for attempted acess */
  201.       DFE_BADCONV,              /* Don't know how to convert data type */
  202.       DFE_BADTYPE,              /* Incompatible types specified */
  203.  
  204. /* Compression errors */
  205.       DFE_BADSCHEME,            /* Unknown compression scheme specified */
  206.       DFE_BADMODEL,             /* Invalid compression model specified */
  207.       DFE_BADCODER,             /* Invalid compression encoder specified */
  208.       DFE_MODEL,                /* Error in modeling layer of compression */
  209.       DFE_CODER,                /* Error in encoding layer of compression */
  210.       DFE_CINIT,                /* Error in encoding initialization */
  211.       DFE_CDECODE,              /* Error in decoding compressed data */
  212.       DFE_CENCODE,              /* Error in encoding compressed data */
  213.       DFE_CTERM,                /* Error in encoding termination */
  214.       DFE_CSEEK,                /* Error seekging in encoded dataset */
  215.       DFE_MINIT,                /* Error in modeling initialization */
  216.       DFE_COMPINFO,             /* Invalid compression header */
  217.       DFE_CANTCOMP,             /* Can't compress an object */
  218.       DFE_CANTDECOMP,           /* Can't de-compress an object */
  219.  
  220. /* Raster errors */
  221.       DFE_NODIM,                /* No dimension record associated with image */
  222.       DFE_BADRIG,               /* Error processing a RIG */
  223.       DFE_RINOTFOUND,           /* Can't find raster image */
  224.       DFE_BADATTR,              /* Bad Attribute */
  225.  
  226. /* SDG/NDG errors */
  227.       DFE_BADTABLE,             /* the nsdg table is wrong */
  228.       DFE_BADSDG,               /* error processing an sdg */
  229.       DFE_BADNDG,               /* error processing an ndg */
  230.  
  231. /* Vset errors */
  232.       DFE_VGSIZE,               /* Too many elements in VGroup */
  233.       DFE_VTAB,                 /* Elmt not in vtab[] */
  234.       DFE_CANTADDELEM,          /* Cannot add tag/ref to VGroup */
  235.       DFE_BADVGNAME,            /* Cannot set VGroup name */
  236.       DFE_BADVGCLASS,           /* Cannot set VGroup class */
  237.  
  238. /* Vdata errors */
  239.       DFE_BADFIELDS,            /* Bad fields string passed to Vset routine */
  240.       DFE_NOVS,                 /* Counldn't find VS in file */
  241.       DFE_SYMSIZE,              /* Too many symbols in users table */
  242.       DFE_BADATTACH,            /* Cannot write to a previously attached VData */
  243.       DFE_BADVSNAME,            /* Cannot set VData name */
  244.       DFE_BADVSCLASS,           /* Cannot set VData class */
  245.       DFE_VSWRITE,              /* Error writing to VData */
  246.       DFE_VSREAD,               /* Error reading from VData */
  247.       DFE_BADVH,                /* Error in VData Header */
  248. /* High-level Vdata/Vset errors */
  249.       DFE_VSCANTCREATE,         /* Cannot create VData */
  250.       DFE_VGCANTCREATE,         /* Cannot create VGroup */
  251.  
  252. /* Generic Vdata/Vset errors */
  253.       DFE_CANTATTACH,           /* Cannot attach to a VData/Vset */
  254.       DFE_CANTDETACH,           /* Cannot detach a VData/Vset with access 'w' */
  255.  
  256. /* bit I/O errors */
  257.       DFE_BITREAD,              /* There was a bit-read error */
  258.       DFE_BITWRITE,             /* There was a bit-write error */
  259.       DFE_BITSEEK,              /* There was a bit-seek error */
  260.  
  261. /* tbbt interface errors */
  262.       DFE_TBBTINS,              /* Failed to insert element into tree */
  263.  
  264. /* bit-vector interface errors */
  265.       DFE_BVNEW,                /* Failed to create a bit-vector */
  266.       DFE_BVSET,                /* Failed when setting a bit in a bit-vector */
  267.       DFE_BVGET,                /* Failed when getting a bit in a bit-vector */
  268.       DFE_BVFIND                /* Failed when finding a bit in a bit-vector */
  269.   }
  270. hdf_err_code_t;
  271.  
  272. #ifdef _H_ERR_MASTER_
  273.  
  274. /* error_messages is the list of error messages in the system, kept as
  275.    error_code-message pairs.  To look up a message, a linear search is
  276.    required but efficiency should be okay. */
  277.  
  278. typedef struct error_messages_t
  279.   {
  280.       hdf_err_code_t error_code;
  281.       const char *str;
  282.   }
  283. error_messages_t;
  284.  
  285. PRIVATE const struct error_messages_t error_messages[] =
  286. {
  287.     {DFE_NONE,          "No error"},
  288. /* Low-level I/O errors */
  289.     {DFE_FNF,           "File not found"},
  290.     {DFE_DENIED,        "Access to file denied"},
  291.     {DFE_ALROPEN,       "File already open"},
  292.     {DFE_TOOMANY,       "Too Many AID's or files open"},
  293.     {DFE_BADNAME,       "Bad file name on open"},
  294.     {DFE_BADACC,        "Bad file access mode"},
  295.     {DFE_BADOPEN,       "Error opening file"},
  296.     {DFE_NOTOPEN,       "File can't be closed; It isn't open"},
  297.     {DFE_CANTCLOSE,     "Unable to close file"},
  298.     {DFE_READERROR,     "Read error"},
  299.     {DFE_WRITEERROR,    "Write error"},
  300.     {DFE_SEEKERROR,     "Error performing seek operation"},
  301.     {DFE_RDONLY,        "Attempt to write to read-only HDF file"},
  302.     {DFE_BADSEEK,       "Attempt to seek past end of element"},
  303.  
  304. /* Low-level HDF I/O errors */
  305.     {DFE_PUTELEM,       "Hputelement failed in some way"},
  306.     {DFE_GETELEM,       "Hgetelement failed in some way"},
  307.     {DFE_CANTLINK,      "Can't initialize link information"},
  308.     {DFE_CANTSYNC,      "Cannot syncronize memory with file"},
  309.  
  310. /* Old group interface errors */
  311.     {DFE_BADGROUP,      "Error from DFdiread in opening a group"},
  312.     {DFE_GROUPSETUP,    "Error from DFdisetup in opening a group"},
  313.     {DFE_PUTGROUP,      "Error when putting a tag/ref into a group"},
  314.     {DFE_GROUPWRITE,    "Error when writing out a group"},
  315.  
  316. /* Internal HDF errors */
  317.     {DFE_DFNULL,        "DF has a null pointer"},
  318.     {DFE_ILLTYPE,       "Internal error: DF has an illegal type"},
  319.     {DFE_BADDDLIST,     "Internal error: The DD list is non-existent"},
  320.     {DFE_NOTDFFILE,     "This is not an HDF file"},
  321.     {DFE_SEEDTWICE,     "Internal error: The DD list is already seeded"},
  322.     {DFE_NOSUCHTAG,     "No such tag in the file: search failed"},
  323.     {DFE_NOFREEDD,      "There are no free DD's left"},
  324.     {DFE_BADTAG,        "Illegal WILDCARD tag"},
  325.     {DFE_BADREF,        "Illegal WILDCARD reference"},
  326.     {DFE_NOMATCH,       "No (more) DDs which match specified tag/ref"},
  327.     {DFE_NOTINSET,      "Set contained unknown tag: ignored"},
  328.     {DFE_BADOFFSET,     "Illegal offset specified"},
  329.     {DFE_CORRUPT,       "File is corrupted"},
  330.     {DFE_NOREF,         "No more reference numbers are available"},
  331.     {DFE_DUPDD,         "Tag/ref is already used"},
  332.     {DFE_CANTMOD,       "Old element does not exist, cannot modify"},
  333.     {DFE_DIFFFILES,     "Attempt to merge objects in different files"},
  334.     {DFE_BADAID,        "Unable to create a new AID"},
  335.     {DFE_OPENAID,       "There are still active AIDs"},
  336.     {DFE_CANTFLUSH,     "Cannot flush the changed DD back to the file"},
  337.     {DFE_CANTUPDATE,    "Cannot update the DD block"},
  338.     {DFE_CANTHASH,      "Cannot add a DD to the hash table"},
  339.     {DFE_CANTDELDD,     "Cannot delete a DD in the file"},
  340.     {DFE_CANTDELHASH,   "Cannot delete a DD from the hash table"},
  341.     {DFE_CANTACCESS,    "Cannot access specified tag/ref"},
  342.     {DFE_CANTENDACCESS, "Cannot end access to data element"},
  343.     {DFE_TABLEFULL,     "Access table is full"},
  344.     {DFE_NOTINTABLE,    "Cannot find element in table"},
  345.  
  346. /* Generic errors */
  347.     {DFE_UNSUPPORTED,   "Feature not currently supported"},
  348.     {DFE_NOSPACE,       "Internal error: Out of space"},
  349.     {DFE_BADCALL,       "Calls in wrong order"},
  350.     {DFE_BADPTR,        "NULL ptr argument"},
  351.     {DFE_BADLEN,        "Invalid length specified"},
  352.     {DFE_NOTENOUGH,     "Space provided insufficient for size of data"},
  353.     {DFE_NOVALS,        "Values not available"},
  354.     {DFE_ARGS,          "Invalid arguments to routine"},
  355.     {DFE_INTERNAL,      "HDF Internal error"},
  356.     {DFE_NORESET,       "Can not reset this value"},
  357.     {DFE_GENAPP,        "Generic application-level error"},
  358.  
  359. /* Generic interface errors */
  360.     {DFE_UNINIT,        "Interface was not initialized correctly"},
  361.     {DFE_CANTINIT,      "Can't initialize an interface we depend on"},
  362.     {DFE_CANTSHUTDOWN,  "Can't shut down an interface we depend on"},
  363.  
  364. /* Dataset errors */
  365.     {DFE_BADDIM,        "Negative or zero dimensions specified"},
  366.     {DFE_BADFP,         "File contained an illegal floating point number"},
  367.     {DFE_BADDATATYPE,   "Unknown or unavailable data type specified"},
  368.     {DFE_BADMCTYPE,     "Unknown or unavailable machine type specified"},
  369.     {DFE_BADNUMTYPE,    "Unknown or unavailable number type specified"},
  370.     {DFE_BADORDER,      "Unknown or illegal array order specified"},
  371.     {DFE_RANGE,         "Improper range for attempted access"},
  372.     {DFE_BADCONV,       "Don't know how to convert data type"},
  373.     {DFE_BADTYPE,       "Incompatible type specified"},
  374.  
  375. /* Compression errors */
  376.     {DFE_BADSCHEME,     "Unknown compression scheme specified"},
  377.     {DFE_BADMODEL,      "Invalid compression model specified"},
  378.     {DFE_BADCODER,      "Invalid compression coder specified"},
  379.     {DFE_MODEL,         "Error in modeling layer of compression"},
  380.     {DFE_CODER,         "Error in encoding layer of compression"},
  381.     {DFE_CINIT,         "Error in encoding initialization"},
  382.     {DFE_CDECODE,       "Error in decoding compressed data"},
  383.     {DFE_CENCODE,       "Error in encoding compressed data"},
  384.     {DFE_CTERM,         "Error in encoding termination"},
  385.     {DFE_CSEEK,         "Error seeking in encoded dataset"},
  386.     {DFE_MINIT,         "Error in modeling initialization"},
  387.     {DFE_COMPINFO,      "Invalid compression header"},
  388.     {DFE_CANTCOMP,      "Can't compress an object"},
  389.     {DFE_CANTDECOMP,    "Can't de-compress an object"},
  390.  
  391. /* Raster errors */
  392.     {DFE_NODIM,         "No dimension record associated with image"},
  393.     {DFE_BADRIG,        "Error processing a RIG"},
  394.     {DFE_RINOTFOUND,    "Can't find raster image"},
  395.     {DFE_BADATTR,       "Bad Attribute"},
  396.  
  397. /* SDG/NDG errors */
  398.     {DFE_BADTABLE,      "The nsdg table is wrong"},
  399.     {DFE_BADSDG,        "Error processing an sdg"},
  400.     {DFE_BADNDG,        "Error processing an ndg"},
  401.  
  402. /* Vset errors */
  403.     {DFE_VGSIZE,        "No more elements will fit in this VGroup"},
  404.     {DFE_VTAB,          "Element is not in VSet tables"},
  405.     {DFE_CANTADDELEM,   "Cannot add tag/ref to VGroup"},
  406.     {DFE_BADVGNAME,     "Cannot set VGroup name"},
  407.     {DFE_BADVGCLASS,    "Cannot set VGroup class"},
  408.  
  409. /* Vdata errors */
  410.     {DFE_BADFIELDS,     "Unable to parse fields string correctly"},
  411.     {DFE_NOVS,          "Could not find specified VS or VG in file"},
  412.     {DFE_SYMSIZE,       "Too many symbols in table"},
  413.     {DFE_BADATTACH,     "Cannot write to a previously attached VData"},
  414.     {DFE_BADVSNAME,     "Cannot set VData name"},
  415.     {DFE_BADVSCLASS,    "Cannot set VData class"},
  416.     {DFE_VSWRITE,       "Error writing to VData"},
  417.     {DFE_VSREAD,        "Error reading from VData"},
  418.  
  419. /* High-level Vdata/Vset errors */
  420.     {DFE_VSCANTCREATE,  "Cannot create VData"},
  421.     {DFE_VGCANTCREATE,  "Cannot create VGroup"},
  422.  
  423. /* Generic Vdata/Vset errors */
  424.     {DFE_CANTATTACH,    "Cannot attach to a VData"},
  425.     {DFE_CANTDETACH,    "Cannot detach a VData with access 'w'"},
  426.  
  427. /* bit I/O errors */
  428.     {DFE_BITREAD,       "There was a bit-read error"},
  429.     {DFE_BITWRITE,      "There was a bit-write error"},
  430.     {DFE_BITSEEK,       "There was a bit-seek error"},
  431.  
  432. /* tbbt interface errors */
  433.     {DFE_TBBTINS,       "Failed to insert element into tree"},
  434.  
  435. /* bit-vector interface errors */
  436.     {DFE_BVNEW,         "Failed to create a bit-vector"},
  437.     {DFE_BVSET,         "Failed when setting a bit in a bit-vector"},
  438.     {DFE_BVGET,         "Failed when getting a bit in a bit-vector"},
  439.     {DFE_BVFIND,        "Failed when finding a bit in a bit-vector"}
  440. };
  441. #endif /* _H_ERR_MASTER_ */
  442.  
  443. #endif /* __HERR_H */
  444.